import lookup from "./lookup"
/**
 * @description: 将tokens和data结合，生成最终的html字符串
 * @param {*} tokens数组
 * @param {*} data对象
 * @return {*} resultStr
 */
export default function renderTemplate(tokens, data) {
  let resultStr = ""
  for (let i = 0; i < tokens.length; i++) {
    let token = tokens[i]
    if (token[0] === "text") {
      resultStr += token[1]
    } else if (token[0] === "name") {
      resultStr += lookup(data, token[1])
    } else if (token[0] === "#") {
      // #的作用是按照#arr这个arr数组对象，循环内部的模板内容，多次生成类似的html字符串，所以需要遍历token[1]
      let arr = lookup(data, token[1])
      for (let j = 0; j < arr.length; j++) {
        if (typeof arr[j] === "number") {
          arr[j] = arr[j].toString()
        }
        resultStr += renderTemplate(token[2], {
          ...arr[j],
          ".": arr[j]
        })
      }
    }
  }
  return resultStr
}
